package br.upis.listacompras.atividade.listacompra;

import java.sql.SQLException;
import java.util.List;

import br.upis.listacompras.R;
import br.upis.listacompras.entidades.ListaCompras;
import br.upis.listacompras.repositorio.DatabaseHelper;

import com.j256.ormlite.android.apptools.OrmLiteBaseActivity;
import com.j256.ormlite.dao.Dao;

import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class ListarListaComprasActivity extends OrmLiteBaseActivity<DatabaseHelper> 
{
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_listar_lista_compras);
        
        setEvents();
        bindListListaCompras();
    }
    
    @Override
    protected void onResume()
    {
    	super.onResume();
    	bindListListaCompras();
    }
    
    public void novaListaCompraClick(View v) 
    {
    	Intent a = new Intent(this, NovaListaComprasActivity.class);
        startActivity(a);
    }

    private void setEvents()
    {
    	final ListView listView = (ListView) findViewById(R.id.listListaCompras);
    	
    	listView.setOnItemClickListener(new OnItemClickListener()
		{

			public void onItemClick(AdapterView<?> arg0, View myView, int myItemInt,
					long arg3)
			{
				ListaCompras item = (ListaCompras)(listView.getItemAtPosition(myItemInt));
    	    	
    	    	Intent a = new Intent(myView.getContext(), EditarListaComprasActivity.class);
    	    	a.putExtra("idListaCompra", item.getId());
    	        startActivity(a);

			}
		});
    }

	@Override
    public boolean onCreateOptionsMenu(Menu menu) 
	{
        getMenuInflater().inflate(R.menu.activity_listar_lista_compras, menu);
        return true;
    }
    
    private void bindListListaCompras() 
    {
    	Dao<ListaCompras, Integer> simpleDao;
		try 
		{
			
			simpleDao = getHelper().getListaComprasDao();
			
			List<ListaCompras> listOfListaCompras = 
					simpleDao.queryBuilder()
							 .orderBy("dataCadastro", false)
							 .where().eq("deletado", false)
							 .query();
			
			ListView listView = (ListView)findViewById(R.id.listListaCompras);
			
			ArrayAdapter<ListaCompras> arrayAdapter =      
			         new ArrayAdapter<ListaCompras>(
			        		 this,
			        		 R.layout.text_view_for_list_view, 
			        		 listOfListaCompras);
			
			listView.setAdapter(arrayAdapter);
		
		}
		catch (SQLException e) 
		{
			new AlertDialog
			.Builder(getBaseContext())
			.setMessage("Erro ao cadastrar uma nova lista.")
			.show();
		}
	}
}
